package klient;

import util.*;

import java.util.Date;
import java.util.Vector;

public class Klient extends ObjectPlus {

	private static long nr = 1;
    private long id = nr++;
    private String imie;
    private String nazwisko;
    private Date dataUrodzenia;
    private String miasto;
    private WojewodztwoEnum wojewodztwo;
    private String email;
    private PlecEnum plec;
    private StanCywilnyEnum stanCywilny;
    private int liczbaDzieci;
    private WyksztalcenieEnum wyksztalcenie;
    private ZawodEnum zawod;
    private int dochod;
    private int oszczednosciMsc;
    private MieszkanieEnum mieszkanie;
    private KategoriaEnum kategoria;

        
    public Klient(long id) {
		super();
		this.id = id;
	}


	public Klient(String imie, String nazwisko){
		super();
    	this.imie = imie;
    	this.nazwisko = nazwisko;
    }
    
	
	public Vector getVectorDane(){
		Vector<String> daneKlienta = new Vector<String>();
		daneKlienta.addElement(this.imie);
		daneKlienta.addElement(this.nazwisko);
		return daneKlienta;
	}
	
	public static Vector getVectorKlient(){
		Vector<Klient> klienci = null;
		try {
			klienci = ObjectPlus.pobierzEkstensje(Klient.class);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Vector<Vector> vector = new Vector<Vector>();
		for(Klient k : klienci){
			vector.addElement(k.getVectorDane());
		}
		return vector;
	}
       
    public Klient(long id, String imie, String nazwisko, Date dataUrodzenia,
			String miasto, String wojS, String email, String plecS,
			String stanCywilnyS, int liczbaDzieci,
			String wyksztalcenieS, String zawodS, int dochod,
			int oszczednosciMsc, String mieszkanieS,
			String kategoriaS) {
		super();
		this.id = id;
		this.imie = imie;
		this.nazwisko = nazwisko;
		this.dataUrodzenia = dataUrodzenia;
		this.miasto = miasto;
		//this.wojewodztwo = EnumConverter.dajWojewodztwo(wojS.trim());
		this.wojewodztwo = WojewodztwoEnum.fromNazwa(wojS.trim());
		this.email = email;
		//this.plec = EnumConverter.dajPlec(plecS.trim());
		this.plec = PlecEnum.fromNazwa(plecS.trim());
		//this.stanCywilny = EnumConverter.dajStanCywilny(stanCywilnyS.trim());
		this.stanCywilny = StanCywilnyEnum.fromNazwa(stanCywilnyS.trim());
		this.liczbaDzieci = liczbaDzieci;
		//this.wyksztalcenie = EnumConverter.dajWyksztalcenie(wyksztalcenieS.trim());
		this.wyksztalcenie = WyksztalcenieEnum.fromNazwa(wyksztalcenieS.trim());
		this.zawod = EnumConverter.dajZawod(zawodS.trim());
		this.dochod = dochod;
		this.oszczednosciMsc = oszczednosciMsc;
		//this.mieszkanie = EnumConverter.dajMieszkanie(mieszkanieS.trim());
		this.mieszkanie = MieszkanieEnum.fromNazwa(mieszkanieS.trim());
		//this.kategoria = EnumConverter.dajKategoria(kategoriaS.trim());
		this.kategoria = KategoriaEnum.fromNazwa(kategoriaS.trim());
	}
    
    
    
    public Klient(long id, String imie, String nazwisko, Date dataUrodzenia,
			String miasto, WojewodztwoEnum woj, String email, PlecEnum plec,
			StanCywilnyEnum stanCywilny, int liczbaDzieci,
			WyksztalcenieEnum wyksztalcenie, ZawodEnum zawod, int dochod,
			int oszczednosciMsc, MieszkanieEnum mieszkanie,
			KategoriaEnum kategoria) {
		super();
		this.id = id;
		this.imie = imie;
		this.nazwisko = nazwisko;
		this.dataUrodzenia = dataUrodzenia;
		this.miasto = miasto;
		this.wojewodztwo = woj;
		this.email = email;
		this.plec = plec;
		this.stanCywilny = stanCywilny;
		this.liczbaDzieci = liczbaDzieci;
		this.wyksztalcenie = wyksztalcenie;
		this.zawod = zawod;
		this.dochod = dochod;
		this.oszczednosciMsc = oszczednosciMsc;
		this.mieszkanie = mieszkanie;
		this.kategoria = kategoria;
	}

	public String toString(){
    	return imie.trim() + " " + nazwisko.trim() + " " + wojewodztwo.getNazwa() + " stanC=" + stanCywilny + " l.dzieci=" + liczbaDzieci + " wykszt=" + wyksztalcenie + " zawod=" + zawod + " dochod=" + dochod + " mieszk=" + mieszkanie + " oszcz=" + oszczednosciMsc;
    }
    
    public Date getDataUrodzenia() {
        return dataUrodzenia;
    }

    public void setDataUrodzenia(Date dataUrodzenia) {
        this.dataUrodzenia = dataUrodzenia;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getImie() {
        return imie;
    }

    public void setImie(String imie) {
        this.imie = imie;
    }

    public String getMiasto() {
        return miasto;
    }

    public void setMiasto(String miasto) {
        this.miasto = miasto;
    }

    public String getNazwisko() {
        return nazwisko;
    }

    public void setNazwisko(String nazwisko) {
        this.nazwisko = nazwisko;
    }

    public WojewodztwoEnum getWojewodztwo() {
        return wojewodztwo;
    }

    public void setWojewodztwo(WojewodztwoEnum wojewodztwo) {
        this.wojewodztwo = wojewodztwo;
    }

	public WojewodztwoEnum getWoj() {
		return wojewodztwo;
	}

	public void setWoj(WojewodztwoEnum woj) {
		this.wojewodztwo = woj;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public PlecEnum getPlec() {
		return plec;
	}

	public void setPlec(PlecEnum plec) {
		this.plec = plec;
	}

	public StanCywilnyEnum getStanCywilny() {
		return stanCywilny;
	}

	public void setStanCywilny(StanCywilnyEnum stanCywilny) {
		this.stanCywilny = stanCywilny;
	}

	public int getLiczbaDzieci() {
		return liczbaDzieci;
	}

	public void setLiczbaDzieci(int liczbaDzieci) {
		this.liczbaDzieci = liczbaDzieci;
	}

	public WyksztalcenieEnum getWyksztalcenie() {
		return wyksztalcenie;
	}

	public void setWyksztalcenie(WyksztalcenieEnum wyksztalcenie) {
		this.wyksztalcenie = wyksztalcenie;
	}

	public ZawodEnum getZawod() {
		return zawod;
	}

	public void setZawod(ZawodEnum zawod) {
		this.zawod = zawod;
	}

	public int getDochod() {
		return dochod;
	}

	public void setDochod(int dochod) {
		this.dochod = dochod;
	}

	public int getOszczednosciMsc() {
		return oszczednosciMsc;
	}

	public void setOszczednosciMsc(int oszczednosciMsc) {
		this.oszczednosciMsc = oszczednosciMsc;
	}

	public MieszkanieEnum getMieszkanie() {
		return mieszkanie;
	}

	public void setMieszkanie(MieszkanieEnum mieszkanie) {
		this.mieszkanie = mieszkanie;
	}

	public KategoriaEnum getKategoria() {
		return kategoria;
	}

	public void setKategoria(KategoriaEnum kategoria) {
		this.kategoria = kategoria;
	}

}
